
local excel = load_excel('特殊奖池.xlsx','升级奖励')

for a,temp in ipairs(excel) do
    local tip = temp['属性'] or ''
    local texts = tip:split('+（')
    local ex = texts[2] or ''
    local k,v,c = match_sx(texts[1])
    local num = ex:match(('([%d]+)*提升值'))
    temp.key = ('升级奖励%s'):format(a)
    temp.name = k
    temp.mark = c or ''
    temp.data1 = tonumber(v) or 0
    temp.data2 = tonumber(num) or 0
    if temp.data1==0 then
        print(tip)
    end
end

ac.skill('升级词条'){
    show_num = 0,
    art = [[图标\JNL_sjjl.blp]],
    tip = [[升级奖励三选一|n|n每次英雄等级+1，获得升级奖励+1]],
    on_add = function(self)
        local hero = self.owner
        local player = hero.owner
        self:gc(hero:event '单位-英雄升级'(function()
            self.show_num = self.show_num + 1
            self.show_effect = self.show_num>0
        end))
        self:gc(hero:event '单位-添加升级奖励'(function(_,_,num)
            self.show_num = self.show_num + num
            self.show_effect = self.show_num>0
        end))
    end,
    on_cast_shot = function(self)
        local hero = self.owner
        local player = hero.owner
        if self.show_num<=0 then
            return
        end
        local func = function ()
            local info = {}
            for _,temp in ipairs(excel) do
                if temp['上限次数']==nil or hero:get_data(temp.key,0)<temp['上限次数'] then
                    if temp.need==nil or hero:get_data('升级词条次数',0)>=temp.need then
                        table.insert(info,temp)
                    end
                end
            end
            local list = {}
            local rate = math.min(math.floor(hero:get_data('升级词条次数',0)/10),3)
            for a,temp in ipairs(table.random_table(info,3)) do
                local num = temp.data1 + (temp.data2 * rate)
                local tip = ('%s+%s%s'):format(ac.attr_key2[temp.name] or temp.name,num,temp.mark)
                list[a] = {
                    name = temp.key,
                    title = tip,
                    num = num,
                    key = temp.name,
                }
            end
            return list
        end
        for a=1,self.show_num do
            player:notify('玩家-添加升级词条',player,func,function(temp,index)
                hero:add(temp.key,temp.num)
                hero:set_data(temp.name,hero:get_data(temp.name,0) + 1)
                hero:set_data('升级词条次数',hero:get_data('升级词条次数',0) + 1)
                
                if player:get_data('第一次点击升级词条')==nil then
                    player:set_data('第一次点击升级词条',true)
                    player:notify('玩家-显示商店',player,'杀敌兑换')
                end
                if player:get_data('引导-卡牌羁绊')==nil then
                    player:set_data('引导-卡牌羁绊',true)
                    player:notify('引导-显示内容',player,'卡牌羁绊','消耗木头按(G)键抽取卡牌，抽取的卡牌直接吞噬')
                end
                
            end)
        end
        self.show_num = 0
        self.show_effect = false
    end
}


ac.game:event '玩家-选择英雄完毕'(function(_,player,hero)
    hero:add_skill('升级词条','英雄',9)
end)